import java.util.Scanner;

public class Main {


    // cnt 代表已经选择的数量
    // pos 代表当前的层/当前的元素

    public static int[] ans = new int[30];

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        dfs(1,0,n,m);
    }

    private static void dfs(int pos, int cnt,int n,int m) {
        //先解决终止条件
        if(cnt > m){
            return ;
        }
        if(pos > n){
            if(m == cnt){
                for (int i = 1; i <= m ; i++) {
                    System.out.print(ans[i] + " ");
                }
                System.out.println();
            }
            return ;
        }
        ans[cnt + 1] = pos;
        //选了这个数，进入到下一层
        dfs(pos + 1,cnt + 1,n,m);
        //回溯
        ans[cnt + 1] = 0;
        //不选这个数，则不做改动
        dfs(pos + 1,cnt,n,m);
    }

}
